package com.hst.capacity.application.biz;


import com.hst.capacity.domain.model.request.fleet.*;
import com.hst.capacity.domain.model.response.PagingResultVO;
import com.hst.capacity.domain.model.response.fleet.FleetCommisionSelectVO;
import com.hst.capacity.domain.model.response.fleet.FleetSearchDriverVO;
import com.hst.capacity.domain.model.response.fleet.FleetSearchVO;
import com.hst.capacity.domain.model.response.fleet.FleetUserSearchVO;

public interface FleetBiz {

    PagingResultVO<FleetUserSearchVO> dispatchAccountSearch(FleetUserSearchParam param);

    FleetUserSearchVO dispatchAccountDetail(String idFleetUser);

    String dispatchAccountSave(FleetUserSaveParam param);

    PagingResultVO<FleetSearchVO> search(FleetSearchParam param);

    String save(FleetSaveParam param);

    FleetSearchVO select(String idFleet);

    PagingResultVO<FleetSearchDriverVO> searchDriverBind(FleetSearchDriverParam param);

    PagingResultVO<FleetSearchDriverVO> searchUnBindFleetDriver(FleetSearchDriverParam param);

    PagingResultVO<FleetSearchDriverVO> searchDriverMobile(FleetSearchDriverParam param);

    int fleetCount(String idFranchisee);

    Boolean driverBindToggle(FleetBindDriverParam param);

    Boolean driverUnBindToggle(FleetBindDriverParam param);

    Boolean driverBindByFranchisee(FleetBindDriverParam param);

    Boolean driverUnBindByFranchisee(FleetBindDriverParam param);

    FleetCommisionSelectVO commisionSelect(String idFleet);

    String commisionSave(FleetCommisionSaveParam param);

    FleetCommisionSaveParam commisionSaveSelect(String idFleetCommision);

    Boolean statusOpen(FleetStatusParam param);

    Boolean statusFreeze(FleetStatusParam param);

}
